小妹求教一道有关字符串的问题^_^谢谢大家~~

来源:百度知道 编辑:UC知道 时间:2024/06/04 18:32:41
题目是这样的:
编写函数int find(char a[]),从第一个字符串中找出某个字符第一次出现的位置,例如字符串“i love you”中字母“i”出现位置为1.若没有该字符,返回0,否则函数返回出现的地方
我的程序是:
# include<iostream.h>
int location(char m[100],char n);
void main()
{
char a[100];
char b;
int i,j;
cout<<"请输入一组字符:"<<endl;
for(i=0;i!='100';i++)
cin>>a[i];
cout<<"请输入一个字母"<<endl;
cin>>b;
j=location(a,b);
cout<<"b是a数组的第"<<b<<"个字母"<<endl;
}
int location(char m[100],char n)
{
int i,j(0);
for(i=0;i<100;i++)
if('m[i]'=='n')
j=i+1;
else
j=0;
return j;
}

问题是这样几个:1.怎样做到输入回车时字符串输入完毕
2.貌似我的函数解决不了题目要求55555~~~好半天了呢...请大家帮小妹看看吧~~谢了~还有,请大虾们改过后运行一下,如果对了的话有额外加分的哦~~(*^__^*) 嘻嘻…
谢谢大家了~~

# include<iostream.h>
# include <string.h>

int location(char *m,char n); //不要那样声明形参 这样比较好

void main()
{
char a[100];
char b;
int j;
cout<<"请输入一组字符:"<<endl;
//for(i=0;i!='100';i++) 这句不需要,字符串可以直接输入
cin>>a;
cout<<"请输入一个字母"<<endl;
cin>>b;
j=location(a,b);
cout<<b<<"是a数组的第"<<j<<"个字母"<<endl; //要输出的变量不用加引号 这里应该是j
}

int location(char *m,char n)
{
int i; //j(0)没有这个用法
for(i=0;*(m+i)!='\0';i++)
{
if(*(m+i)==n) //不用加单引号
break;
}
if(i==strlen(m)) //根据循环结束的条件来返回不同的值 strlen包含于<string.h> 用于计算字符串的长度
return 0;
else
return i+1;
}

# include<iostream.h>
int location(char m[100],char n);
void main()
{
char a[100];
char b;
int i,j;